/* Funzione che amplia un'area */

ampliaArea(AC,NA):-
	api(API),
	trx(Trx),
	lmax(Lmax),
	deltaL(DeltaL),
	area(AC,[_,_,ACd]),
	(ACd+DeltaL<Lmax->
		( nuovaArea(AC,NA1),
		  ( not(intersezione(NA1,API))->
			( calcolaTx(NA1,Tx),
			  retractall(tx(NA1,_)),
			  assert(tx(NA1,Tx)),	
			  (Tx<Trx->
				(ampliaArea(NA1,NA),rimuoviArea(AC))
				;
				(NA=AC,rimuoviArea(NA1))
			  )
			)
			;
			(NA=AC,rimuoviArea(NA1))
		  )
		)
		;
		(NA=AC)
	).
